package net.lab1024.sa.admin.module.business.template.domain.form;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 报价单模板明细 新建表单
 *
 * @Author zzx
 * @Date 2025-08-06 11:06:59
 * @Copyright zzx
 */

@Data
public class QuotationTemplateItemsAddForm {

    @Schema(description = "模版明细id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "模版明细id 不能为空")
    private Long templateOrderId;

    @Schema(description = "模板id", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "模板id 不能为空")
    private Long templateId;

    @Schema(description = "品名", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "品名 不能为空")
    private String productName;

    @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "规格 不能为空")
    private String specifications;

    @Schema(description = "金额", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "金额 不能为空")
    private BigDecimal sumOfMoney;

    @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "类型 不能为空")
    private Integer type;

    @Schema(description = "禁用状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "禁用状态 不能为空")
    private Integer disabledFlag;

    @Schema(description = "删除状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "删除状态 不能为空")
    private Integer deletedFlag;

    @Schema(description = "创建人ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "创建人ID 不能为空")
    private Long createUserId;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "创建时间 不能为空")
    private LocalDateTime createTime;

    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "更新时间 不能为空")
    private LocalDateTime updateTime;

}